package com.ygqh.baby.service;

import java.util.Date;
import java.util.List;

import com.ygqh.baby.ao.*;
import com.ygqh.baby.po.YgWholesaler;
import com.ygqh.baby.po.YgWholesalerPrebillRecord;
import com.ygqh.baby.po.YgWholesalerPrebillRecordDetail;

/**
 * @author Ss
 */
public interface YgWholesalerPrebillRecordService {

	List<YgWholesalerPrebillRecord> find();

	int findCount();

	YgWholesalerPrebillRecord findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	int save(YgWholesalerPrebillRecord ygWholesalerPrebillRecord);

	int update(YgWholesalerPrebillRecord ygWholesalerPrebillRecord);

	int saveOrUpdate(YgWholesalerPrebillRecord ygWholesalerPrebillRecord);

	ResultSet<YgWholesalerPrebillRecord> search(QueryInfo queryInfo, String wholesalerName, Date startDate, Date endDate, String billCode, String prebillCode,
												CommitStatus commitStatus);

	void editPrebillRecord(YgWholesalerPrebillRecord record);

	List<YgWholesalerPrebillRecord> findListByWholesalerId(Long wholesalerId, CommitStatus commitStatus);

	List<YgWholesalerPrebillRecord> findListByWholesalerId(Long wholesalerId, WholeSaleRecordType recordType, CommitStatus commitStatus);

	void commitPrebillRecord(List<String> prebillCodeList, String handler);

	List<YgWholesalerPrebillRecord> findByPrebillCode(List<String> prebillCodeList, CommitStatus commitStatus);

	void saveReturnOrder(Long wholesalerId, List<YgWholesalerPrebillRecordDetail> prebillRecordDetailList, String handler);

	void executeWholesalerPrebillJob(Long wholesalerId);

	void updateByDismissedRecord(YgWholesalerPrebillRecord record);

	void addPrebillOrderRecordPastTime(YgWholesaler wholesaler);

}
